package com.poly.cms.pojo.dto;

import com.poly.common.core.web.domain.BaseDTO;
import com.poly.common.core.validate.Add;
import com.poly.common.core.validate.Update;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

/**
 * 内容基础对象 cms_content
 *
 * @author poly
 * @date 2023-10-25
 */
@ApiModel(value = "CmsContentDTO", description = "内容基础")
@Data
public class CmsContentDTO extends BaseDTO
{
    private static final long serialVersionUID = 1L;

    /**
     * 编号
     */
    @ApiModelProperty("编号")
    @NotNull(message="编号不能为空", groups = {Update.class})
    private Long id;

    /**
     * 标题
     */
    @ApiModelProperty("标题")
    @Size(message = "标题长度必须小于255个字符",max = 255,groups = {Add.class,Update.class})
    //@Pattern(message = "标题格式不正确",regexp = “<正则表达式>”,groups = {Add.class,Update.class})
    private String title;

    /**
     * 作者
     */
    @ApiModelProperty("作者")
    @Size(message = "作者长度必须小于50个字符",max = 50,groups = {Add.class,Update.class})
    //@Pattern(message = "作者格式不正确",regexp = “<正则表达式>”,groups = {Add.class,Update.class})
    private String author;

    /**
     * 来源
     */
    @ApiModelProperty(value = "来源",hidden = true)
    @Size(message = "来源长度必须小于255个字符",max = 255,groups = {Add.class,Update.class})
    //@Pattern(message = "来源格式不正确",regexp = “<正则表达式>”,groups = {Add.class,Update.class})
    private String source;

    /**
     * 阅读数量
     */
    @ApiModelProperty("阅读数量")
    private Long readCount;

    /**
     * 是否置顶
     */
    @ApiModelProperty("是否置顶")
    private Integer top;

    /**
     * 是否推荐
     */
    @ApiModelProperty("是否推荐")
    private Integer recommend;

    /**
     * 关键字
     */
    @ApiModelProperty("关键字")
    @Size(message = "关键字长度必须小于200个字符",max = 200,groups = {Add.class,Update.class})
    //@Pattern(message = "关键字格式不正确",regexp = “<正则表达式>”,groups = {Add.class,Update.class})
    private String keyword;

    /**
     * 内容
     */
    @ApiModelProperty("内容")
//    @Size(message = "内容长度必须小于255个字符",max = 255,groups = {Add.class,Update.class})
    //@Pattern(message = "内容格式不正确",regexp = “<正则表达式>”,groups = {Add.class,Update.class})
    private String content;

    /**
     * 公开
     */
    @ApiModelProperty(value = "公开",hidden = true)
    private Integer openMode;

    /**
     * 频道编号
     */
    @ApiModelProperty("频道编号")
    @NotNull(message="频道编号不能为空", groups = {Add.class , Update.class})
    private Long channelId;

    /**
     * 附件
     */
    @ApiModelProperty("附件")
    @Size(message = "附件长度必须小于512个字符",max = 512,groups = {Add.class,Update.class})
    //@Pattern(message = "附件格式不正确",regexp = “<正则表达式>”,groups = {Add.class,Update.class})
    private String annex;

    /**
     * 状态
     */
    @ApiModelProperty("状态")
    @NotNull(message="状态不能为空", groups = {Add.class , Update.class})
    private Integer status;

    /**
     * 删除标志
     */
    @ApiModelProperty(hidden = true)
//    @NotNull(message="删除标志不能为空", groups = {Add.class  })
    private Integer delFlag;



}
